static void filter_combo_changed (GtkComboBox *combo_box,
GtkFileChooserDefault *impl);
-static void shortcuts_row_activated_cb (GtkTreeView *tree_view,
- GtkTreePath *path,
- GtkTreeViewColumn *column,
- GtkFileChooserDefault *impl);
static gboolean shortcuts_key_press_event_cb (GtkWidget *widget,
GdkEventKey *event,
profile_start ("start", NULL);
- /* As there is no separator now, we want to start there.
- */
- start_row = shortcuts_get_index (impl, SHORTCUTS_BOOKMARKS_SEPARATOR);
+ start_row = shortcuts_get_index (impl, SHORTCUTS_BOOKMARKS_SEPARATOR) + 1;
num_inserted = 0;
for (; paths; paths = paths->next)
if (impl->local_only &&
!gtk_file_system_path_is_local (impl->file_system, path))
continue;
+ if (shortcut_find_position (impl, path) != -1)
+ continue;
label = gtk_file_system_get_bookmark_label (impl->file_system, path);
impl->num_bookmarks + 1);
impl->num_bookmarks = 0;
+ shortcuts_insert_separator (impl, SHORTCUTS_BOOKMARKS_SEPARATOR);
bookmarks = gtk_file_system_list_bookmarks (impl->file_system);
shortcuts_append_paths (impl, bookmarks);
gtk_file_paths_free (bookmarks);
- if (impl->num_bookmarks > 0)
- shortcuts_insert_separator (impl, SHORTCUTS_BOOKMARKS_SEPARATOR);
+ if (impl->num_bookmarks == 0)
+ shortcuts_remove_rows (impl, shortcuts_get_index (impl, SHORTCUTS_BOOKMARKS_SEPARATOR), 1);
if (impl->shortcuts_pane_filter_model)
gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (impl->shortcuts_pane_filter_model));
shortcuts_selection_changed_cb (GtkTreeSelection *selection,
GtkFileChooserDefault *impl)
{
+ GtkTreeIter iter;
+ GtkTreeIter child_iter;
+
bookmarks_check_remove_sensitivity (impl);
shortcuts_check_popup_sensitivity (impl);
+
+ if (impl->changing_folder)
+ return;
+
+ if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+ {
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (impl->shortcuts_pane_filter_model),
+ &child_iter,
+ &iter);
+ shortcuts_activate_iter (impl, &child_iter);
+ }
}
static gboolean
GDK_ACTION_COPY | GDK_ACTION_MOVE);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_shortcuts_tree_view));
- gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
gtk_tree_selection_set_select_function (selection,
shortcuts_select_func,
impl, NULL);
g_signal_connect (selection, "changed",
G_CALLBACK (shortcuts_selection_changed_cb), impl);
- g_signal_connect (impl->browse_shortcuts_tree_view, "row_activated",
- G_CALLBACK (shortcuts_row_activated_cb), impl);
-
g_signal_connect (impl->browse_shortcuts_tree_view, "key_press_event",
G_CALLBACK (shortcuts_key_press_event_cb), impl);
gtk_file_path_free (path);
return retval;
}
- else if (impl->toplevel_last_focus_widget == impl->browse_shortcuts_tree_view)
- {
- /* The focus is on a dialog's action area button, *and* the widget that
- * was focused immediately before it is the shortcuts list. Switch to the
- * selected shortcut and tell the caller not to respond.
- */
- GtkTreeIter iter;
-
- if (shortcuts_get_selected (impl, &iter))
- {
- shortcuts_activate_iter (impl, &iter);
-
- focus_browse_tree_view_if_possible (impl);
- }
- else
- goto file_list;
-
- return FALSE;
- }
else if (impl->toplevel_last_focus_widget == impl->browse_files_tree_view)
{
/* The focus is on a dialog's action area button, *and* the widget that
}
}
-/* Callback used when a row in the shortcuts list is activated */
-static void
-shortcuts_row_activated_cb (GtkTreeView *tree_view,
- GtkTreePath *path,
- GtkTreeViewColumn *column,
- GtkFileChooserDefault *impl)
-{
- GtkTreeIter iter;
- GtkTreeIter child_iter;
-
- if (!gtk_tree_model_get_iter (impl->shortcuts_pane_filter_model, &iter, path))
- return;
-
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (impl->shortcuts_pane_filter_model),
- &child_iter,
- &iter);
- shortcuts_activate_iter (impl, &child_iter);
-}
-
/* Handler for GtkWidget::key-press-event on the shortcuts list */
static gboolean
shortcuts_key_press_event_cb (GtkWidget *widget,